package main

import (
	"flag"
	"fmt"
	"log"
	"os"
)

var (
	Type string // 任务类型: single|double|three
	File string // 文件路径: json文件路径
	Help bool   // 命令帮助
)

func init() {
	flag.StringVar(&Type, "Type", "", "任务类型: `single|double|three`")
	flag.StringVar(&File, "File", "", "任务文件路径: json任务文件路径`filepath`")
	flag.BoolVar(&Help, "Help", false, "命令帮助")
	flag.Usage = usage
}

func usage() {
	fmt.Fprintf(os.Stderr, `sister_hunter version: 0.0.1
		Usage: sister_hunter [ -Type single -F ./example/单层单任务.json ] [ -Help ]
		Options:
		`)
	flag.PrintDefaults()
}

func main() {
	// 设置日志输出格式，包含源代码行号
	log.SetFlags(log.LstdFlags | log.Lshortfile)
	flag.Parse()
	// -Help 命令帮助
	if Help {
		flag.Usage()
		return
	}
	// 任务文件定位
	_, err := os.Stat(File)
	if os.IsNotExist(err) {
		fmt.Println("任务文件不存在, 请重新确定文件路径!")
		return
	}
	// 任务类型选择
	switch Type {
	case "single":
		RunSingleTask(File)
	case "double":
		RunDoubleTask(File)
	case "three":
		fmt.Println("three")
	default:
		fmt.Println("任务类型不存在: single【单层任务】/double【双层任务】/three【三层任务】,三选一!")
		return
	}
}
